home *** CD-ROM | disk | FTP | other *** search
-
- ÃP>ô > RCsourceFN : Assembler FN to generate MiniDumpRC.
- ÃZ"Ý ¤assemble_MiniDumpAC(start%)
- Ãd'ô FN Version 2.10 : 26th Oct 1987
- Ãn)ô Copyright : ABACUS TRAINING
- Ãx:
- Ãŵ:
- Ã…Fê sp,write,top,left,right,bottom,xorigin,yorigin,xconvert,yconvert
- ÄAê blockend,osbyte0,osbyte1,x,y,colour,dot,line,horizpsn,pixel
- Ã 1ê points,printcode,newline,newstrike,newpixel
- ê.ê margin,threshold,xstep,finish,pass%,end%
- ôê Ŷ
- þ"î Ŷ ï26,12:ö:ñ " at line ";fi:ú
- ÃÈ:
- ÃÒ:
- ÃÜ:
- Ãæ6ô Registers transferred from R0, R1 & R2 on entry.
- Ãð9margin = 2 :ô Left margin in tenths of an inch.
- Ãú5threshold = 12 :ô The logical colour threshold.
- ÄJxstep = 10 :ô Horiz. step size calculated from the printer mode.
- Ä:
- Äô Use the BASIC stack.
- Ä"&sp = 13 :ô Stack pointer.
- Ä,:
- Ä6%ô Register used with "OS_WriteC".
- Ä@@write = 0 :ô Contains code to be sent to the printer.
- ÄJ:
- ÄT0ô Registers used with "OS_ReadVduVariables".
- Ä^/top = 3 :ô Top of graphics window.
- Äh4left = 4 :ô Left end of graphics window.
- Är5right = 5 :ô Right end of graphics window.
- Ä|2bottom = 6 :ô Bottom of graphics window.
- Äŷ6xorigin = 7 :ô Origin of screen co-ordinates.
- Ä‘6yorigin = 8 :ô Origin of screen co-ordinates.
- ÄŒ.xconvert = 9 :ô Horizontal resolution.
- Ĥ,yconvert = 10 :ô Vertical resolution.
- Ä®<blockend = 11 :ô End of parameter block, value is -1.
- ĸ:
- ÄÂ$ô Registers used with "OS_Byte".
- ÄÌAosbyte0 = 0 :ô Contains value 3 for *FX 3,10 or *FX 3,0.
- ÄÖ/osbyte1 = 1 :ô Contains value 10 or 0.
- Äà:
- Äê)ô Registers used with "OS_ReadPoint".
- Äô-x = 0 :ô x screen co-ordinate.
- Äþ-y = 1 :ô y screen co-ordinate.
- Å9colour = 2 :ô Logical colour of pixel at (x,y).
- Å:
- Å,ô Other registers used in the programme.
- Å&=dot = 3 :ô Contains value 1 if colour>threshold.
- Å0.line = 7 :ô Vertical loop counter.
- Å:0horizpsn = 8 :ô Horizontal loop counter.
- ÅDCpixel = 9 :ô Vertical loop counter taking values 7 to 0.
- ÅN;points = 3 :ô Number of printer strikes per line.
- ÅXFprintcode = 11 :ô 8-bit code sent to the printer by "OS_WriteC".
- Åb:
- Ål:
- Åv:
- ŀ:
- Å⇩ã pass%=0 ¸ 3 ⇦ 3
- Å“
- P%=start%
- Åfi:
- Ũ[OPT pass%
- Ų:
- ż:
- ÅÆSTMFD (sp)!,{R3-R12,R14}
- ÅÐ:
- ÅÚ:
- ÅäCMP R0, #79
- ÅîBGT finish
- ÅøCMP R1, #255
- ÆBGT finish
- ÆCMP R2, #5
- ÆBLT finish
- Æ CMP R2, #7
- Æ*BGT finish
- Æ4CMP R2, #6
- Æ>BEQ finish
- ÆH:
- ÆR:
- Æ\STMFD (sp)!,{R0-R2}
- Æf:
- Æp:
- ÆzMOV xconvert,#4
- Æ☓MOV yconvert,#5
- ƉMOV left,#128
- Æ—MOV bottom,#129
- ƢMOV right,#130
- ƬMOV top,#131
- ƶMOV xorigin,#136
- ÆÀMOV yorigin,#137
- ÆÊMVN blockend,#0
- ÆÔSTMFD (sp)!,{top-blockend}
- ÆÞ
- MOV R0,sp
- Æè
- MOV R1,sp
- ÆòSWI "OS_ReadVduVariables"
- ÆüLDMFD (sp)!,{top-blockend}
- ÇMOV left,left,LSL xconvert
- ÇSUB left,left,xorigin
- ÇADD right,right,#1
- Ç$ MOV right,right,LSL xconvert
- Ç.SUB right,right,#1
- Ç8SUB right,right,xorigin
- ÇB"MOV bottom,bottom,LSL yconvert
- ÇLSUB bottom,bottom,yorigin
- ÇVADD top,top,#1
- Ç`MOV top,top,LSL yconvert
- ÇjSUB top,top,#1
- ÇtSUB top,top,yorigin
- Ç~MOV line, top
- Ç⇦:
- Ç‹:
- džMOV osbyte0, #3
- ǦMOV osbyte1, #10
- ǰSWI "OS_Byte"
- Ǻ:
- ÇÄ:
- ÇÎLDMFD (sp)!,{R0-R2}
- ÇØMOV xstep, #9
- ÇâSUB xstep, xstep, R2
- ÇìMOV xstep, xstep, LSR #1
- ÇöMOV threshold, R1
- È MOV margin, R0
- È
- :
- È:
- ÈMOV write, #27
- È(SWI "OS_WriteC"
- È2MOV write, #64
- È<SWI "OS_WriteC"
- ÈFMOV write, #27
- ÈPSWI "OS_WriteC"
- ÈZMOV write, #65
- ÈdSWI "OS_WriteC"
- ÈnMOV write, #8
- ÈxSWI "OS_WriteC"
- ÈŵMOV write, #27
- È…SWI "OS_WriteC"
- ȄMOV write, #108
- È SWI "OS_WriteC"
- ȪMOV write, margin
- È´SWI "OS_WriteC"
- Ⱦ:
- ÈÈ:
- ÈÒMOV points, right
- ÈÜSUB points, points, left
- Èæ!MOV points, points, LSR xstep
- ÈðADD points, points, #1
- ÈúMOV xstep, xstep, LSL #1
- É:
- É:
- ÉSTMFD (sp)!,{points,left}
- É".newline
- É,LDMFD (sp),{points,left}
- É6MOV write, #27
- É@SWI "OS_WriteC"
- ÉJMOV write, #42
- ÉTSWI "OS_WriteC"
- É^MOV write, #9
- ÉhSUB write, write, xstep
- ÉrSWI "OS_WriteC"
- É|MOV write, points
- ÉŷSWI "OS_WriteC"
- ɑMOV write, write, LSR #8
- ÉŒSWI "OS_WriteC"
- ɤ:
- É®:
- ɸMOV horizpsn, left
- ÉÂ.newstrike
- ÉÌMOV printcode, #0
- ÉÖMOV pixel, #7
- Éà:
- Éê:
- Éô
- .newpixel
- ÉþMOV x, horizpsn
- ÊMOV y, line
- ÊSUB y, y, #28
- ÊADD y, y, pixel, LSL #2
- Ê&SWI "OS_ReadPoint"
- Ê0CMP colour, threshold
- Ê:MOVGT dot, #1
- ÊD.ADDGT printcode, printcode, dot, LSL pixel
- ÊNSUBS pixel, pixel, #1
- ÊXBPL newpixel
- Êb:
- Êl:
- ÊvMOV write, printcode
- ʀSWI "OS_WriteC"
- Ê⇩!ADD horizpsn, horizpsn, xstep
- ʓCMP horizpsn, right
- ÊfiBLT newstrike
- ʨ:
- ʲ:
- ʼMOV write, #13
- ÊÆSWI "OS_WriteC"
- ÊÐMOV write, #10
- ÊÚSWI "OS_WriteC"
- ÊäSUB line, line, #32
- ÊîCMP line, bottom
- ÊøBGE newline
- Ë:
- Ë:
- ËMOV write, #12
- Ë SWI "OS_WriteC"
- Ë*MOV write, #27
- Ë4SWI "OS_WriteC"
- Ë>MOV write, #64
- ËHSWI "OS_WriteC"
- ËR:
- Ë\:
- ËfMOV osbyte0, #3
- ËpMOV osbyte1, #0
- ËzSWI "OS_Byte"
- Ë☓:
- ˉ:
- Ë—LDMFD (sp)!,{points,left}
- ˢ:
- ˬ:
- ˶.finish
- ËÀLDMFD (sp)!,{R3-R12,R15}
- ËÊ:
- ËÔ
- EQUD 0
- ËÞ
- EQUD 0
- Ëè:
- ËòEQUS "ABACUS TRAINING"
- ËüEQUD &0000000D
- Ì
- EQUD 0
- Ì
- EQUD 0
- Ì
- EQUD 0
- Ì$:
- Ì.]
- Ì8:
- ÌB:
- ÌLí pass%
- ÌV:
- Ì`:
- Ìj:
- Ìtend%=P%
- Ì~:
- Ì⇦:
- Ì‹:
- ̆ =end%
- ̦:
- ÿ